package com.ruoyi.pack.domain.dto;

import java.math.BigDecimal;
import java.util.List;

/**
 * 城市运输分析结果DTO
 * 
 * @author ruoyi
 */
public class CityTransitAnalysisDto {
    
    /** 出发地城市 */
    private String departureCity;
    
    /** 目的地城市 */
    private String destinationCity;
    
    /** 经过的城市信息列表 */
    private List<CityPassInfo> passedCities;
    
    /** 总运输时间（小时） */
    private BigDecimal totalTransitTime;
    
    /** 参与计算的运单数量 */
    private Integer wayBillCount;
    
    /**
     * 城市经过信息
     */
    public static class CityPassInfo {
        /** 城市名称 */
        private String cityName;
        
        /** 省份名称 */
        private String provinceName;
        
        /** 经过顺序（从1开始） */
        private Integer passOrder;
        
        /** 从起始点到该城市的平均运输时间（小时） */
        private BigDecimal averageStayTime;
        
        /** 运输时间标准差（最大耗时偏差，单位：小时） */
        private BigDecimal maxDeviation;
        
        public CityPassInfo() {}
        
        public CityPassInfo(String cityName, String provinceName) {
            this.cityName = cityName;
            this.provinceName = provinceName;
        }
        
        // Getters and Setters
        public String getCityName() {
            return cityName;
        }
        
        public void setCityName(String cityName) {
            this.cityName = cityName;
        }
        
        public String getProvinceName() {
            return provinceName;
        }
        
        public void setProvinceName(String provinceName) {
            this.provinceName = provinceName;
        }
        
        public Integer getPassOrder() {
            return passOrder;
        }
        
        public void setPassOrder(Integer passOrder) {
            this.passOrder = passOrder;
        }
        
        public BigDecimal getAverageStayTime() {
            return averageStayTime;
        }
        
        public void setAverageStayTime(BigDecimal averageStayTime) {
            this.averageStayTime = averageStayTime;
        }
        
        public BigDecimal getMaxDeviation() {
            return maxDeviation;
        }
        
        public void setMaxDeviation(BigDecimal maxDeviation) {
            this.maxDeviation = maxDeviation;
        }
    }
    
    // Getters and Setters
    public String getDepartureCity() {
        return departureCity;
    }
    
    public void setDepartureCity(String departureCity) {
        this.departureCity = departureCity;
    }
    
    public String getDestinationCity() {
        return destinationCity;
    }
    
    public void setDestinationCity(String destinationCity) {
        this.destinationCity = destinationCity;
    }
    
    public List<CityPassInfo> getPassedCities() {
        return passedCities;
    }
    
    public void setPassedCities(List<CityPassInfo> passedCities) {
        this.passedCities = passedCities;
    }
    
    public BigDecimal getTotalTransitTime() {
        return totalTransitTime;
    }
    
    public void setTotalTransitTime(BigDecimal totalTransitTime) {
        this.totalTransitTime = totalTransitTime;
    }
    
    public Integer getWayBillCount() {
        return wayBillCount;
    }
    
    public void setWayBillCount(Integer wayBillCount) {
        this.wayBillCount = wayBillCount;
    }
}
